﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace Clinica_Frba
{

    public partial class FormAfiliadoCancelaTurno : Form
    {
        public FormAfiliadoCancelaTurno()
        {
            InitializeComponent();
            InicializarCampos();
        }

        private void InicializarCampos()
        {
            /*
            SqlConnection myConnection = new SqlConnection(publico.ConnectionString);
            myConnection.Open();

            string strQuery = "SELECT Desc_Esp FROM ESPECIALIDAD";
            SqlCommand consulta = new SqlCommand(strQuery, myConnection);
            SqlDataReader executeCMD = consulta.ExecuteReader();

            dgvResultadoDeBusqueda.Rows.Clear();
            while (executeCMD.Read())
            {
                cbEspecialidad.Items.Add(executeCMD["Desc_Esp"].ToString());
            }
            */
        }

        virtual protected void dgvResultadoDeBusqueda_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

            if (e.ColumnIndex == dgvResultadoDeBusqueda.Columns["Seleccionar"].Index)
            {
                if (e.RowIndex >= 0)
                {

                    SqlConnection myConnection = new SqlConnection(publico.ConnectionString);
                    myConnection.Open();

                    string strAfiliadoID = dgvResultadoDeBusqueda.Rows[e.RowIndex].Cells["IDTurno"].Value.ToString();
                    string strFecha = dgvResultadoDeBusqueda.Rows[e.RowIndex].Cells["Fecha"].Value.ToString();
                    string strMotivo;

                    DateTime dtFecha = DateTime.Parse(strFecha);

                    if (dtFecha <= DateTime.Today)
                    {
                        Dialogos.MostrarMessageDialog("No se pueden cancelar turnos del dia de hoy !");
                        return;
                    }

                    FormMotivo form = new FormMotivo("Por favor, especifique el motivo de la cancelacion.");
                    form.ShowDialog();
                    strMotivo = form.getMotivo();

                    string strQuery = "INSERT INTO CANCELACION(ID_TURNO, Tipo, Fecha,Motivo) VALUES ('" + strAfiliadoID + "','A', CONVERT(DATETIME, '" + DateTime.Today.ToString("yyyy-dd-MM") + "',103), '" + strMotivo + "')";
                    strQuery = "BEGIN TRANSACTION;" + strQuery + "COMMIT TRANSACTION;";

                    SqlCommand sqlCommand = new SqlCommand(strQuery, myConnection);
                    int executeCMD = sqlCommand.ExecuteNonQuery();

                    if (executeCMD > 0)
                    {
                        Dialogos.MostrarMessageDialog("Baja Satisfactoria");
                        dgvResultadoDeBusqueda.Rows.Clear();
                    }
                }

            }

        }

        private void lBuscar_Click(object sender, EventArgs e)
        {

            if (tbAfiliadoID.Text == "")
                return;

            string strQuery = "SELECT pr.Nombre, pr.Apellido, tu.Fecha, tu.ID_PROF, tu.ID_TURNO FROM TURNO tu JOIN PROFESIONAL pr ON pr.ID_PROF = tu.ID_PROF WHERE tu.ESTADO = 'T' AND tu.ID_AFIL = '" + tbAfiliadoID.Text + "';";

            SqlConnection myConnection = new SqlConnection(publico.ConnectionString);
            myConnection.Open();
            SqlCommand consulta = new SqlCommand(strQuery, myConnection);
            SqlDataReader executeCMD = consulta.ExecuteReader();

            dgvResultadoDeBusqueda.Rows.Clear();
            while (executeCMD.Read())
            {
                dgvResultadoDeBusqueda.Rows.Add((executeCMD["nombre"].ToString() + " " + executeCMD["apellido"].ToString()), executeCMD["fecha"].ToString(), executeCMD["Id_Prof"].ToString(), executeCMD["Id_turno"].ToString());
            }

            if(dgvResultadoDeBusqueda.Rows.Count == 0 )
            {
                Dialogos.MostrarMessageDialog("El usuario no tiene turnos...");
            }

        }

    }
}
